package edu.eam.vpuejb.ejbs;

import java.util.List;

import javax.annotation.PostConstruct;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import edu.eam.vpujpa.entidades.CategoriaProducto;
import edu.eam.vpujpa.entidades.CategoriaVendedor;
import edu.eam.vpujpa.entidades.ItemPedido;
import edu.eam.vpujpa.entidades.Pedido;
import edu.eam.vpujpa.entidades.Persona;
import edu.eam.vpujpa.entidades.Producto;
import edu.eam.vpujpa.entidades.Vendedor;
import edu.eam.vpujpa.implementacion.DAO;
import edu.eam.vpujpa.interfaces.iDAO;

@Stateless
@LocalBean
public class EmpresarioEJB {
	@PersistenceContext(name="")
    private EntityManager em;
    private iDAO dAO;
	public EmpresarioEJB() {
		super();
		// TODO Auto-generated constructor stub
	}
    
	@PostConstruct
	public void posConstructor(){
		dAO= new DAO(em);
	}	
	
	public void registrarEmpresario(String codigo, String password,int cedula,
			String nombre, String apellidos, int movil,
			String email,
			long auspiciador){
		Vendedor ve;
		if(auspiciador==0){
			 ve= new Vendedor(0, codigo, password, dAO.buscar(CategoriaVendedor.class, 1),
					null, cedula, nombre, apellidos, movil, email);
		}
		
		 ve= new Vendedor(0, codigo, password, dAO.buscar(CategoriaVendedor.class, 1),
				dAO.buscar(Vendedor.class,auspiciador), cedula, nombre, apellidos, movil, email);
		dAO.crear(ve);
	}
	
	public List<ItemPedido>listarItemsPorPedido(long pedido){
		return dAO.listar(ItemPedido.BUSCAR_ITEMS_BY_PEDIDO, ItemPedido.PARAMETRO_ID_PEDIDO,pedido);
	}
	
	public void redimirPuntos(Vendedor vendedor){
		vendedor.setPuntuacion(0);
		dAO.actualizar(vendedor);
	}
	
	public void actualizarDatos(Vendedor vendedor){
		dAO.actualizar(vendedor);
	}
	
	public List<Vendedor> buscarSubordinados(long vendedor){
		return dAO.listar(Vendedor.BUSCAR_SUBORDINADOS_BY_ID, Vendedor.PARAMETRO_ID,vendedor);
	}
	
	public List<Pedido>listarPedidos(long vendedor){
		return dAO.listar(Pedido.BUSCAR_PEDIDOS_BY_VENDEDOR, Pedido.PARAMETRO_ID_VENDEDOR,vendedor);
	}
}
